package cn.edu.bjfu.practice.practice.teacher.service;

import cn.edu.bjfu.practice.practice.manager.pojo.domain.Teacher;
import cn.edu.bjfu.practice.practice.manager.pojo.query.AddTeacherForm;
import cn.edu.bjfu.practice.practice.manager.pojo.query.LoginForm;
import cn.edu.bjfu.practice.practice.manager.pojo.query.ModifyTeacherForm;
import cn.edu.bjfu.practice.practice.student.pojo.domain.Task;
import cn.edu.bjfu.practice.practice.teacher.pojo.domain.Course;
import cn.edu.bjfu.practice.practice.teacher.pojo.domain.Project;
import cn.edu.bjfu.practice.practice.teacher.pojo.domain.Student;
import cn.edu.bjfu.practice.practice.teacher.pojo.query.*;
import cn.edu.bjfu.practice.practice.teacher.pojo.vo.CourseStudentView;
import cn.edu.bjfu.practice.practice.teacher.pojo.vo.LeaderView;
import cn.edu.bjfu.practice.practice.teacher.pojo.vo.ProjectTeamView;
import cn.edu.bjfu.practice.practice.teacher.pojo.vo.SnoTaskView;
import org.apache.ibatis.executor.statement.StatementUtil;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.List;
import java.util.zip.CheckedOutputStream;

public interface TeacherService {

    public void addCourse(AddCourseForm form);

    public void deleteCourse(Integer id);

    public void fileCourse(FileCourseForm form);

    public List<Course> selectCourse(Boolean file, Integer teacher_id);

    public List<Student> addStudent(MultipartFile excel, Integer course_id) throws IOException;

    public List<CourseStudentView> selectStudent(Integer course_id);

    public void deleteStudent(Integer id);

    public void updateStudent(UpdateStudentForm form);

    public void addProject(AddProjectForm form);

    public void modifyProject(ModifyProjectForm form);

    public Integer deleteProject(Integer id);

    public List<Project> selectProject(Integer id);

    public void addTeam(AddTeamForm form);

    public void modifyTeam(ModifyTeamForm form);

    public Integer deleteTeam(Integer id);

    public List<ProjectTeamView> selectTeam(Integer id);

    public SnoTaskView selectTask(SelectTaskForm form);

    public List<LeaderView> selectTeamLeader(Integer course_id);

    public void addSingleStu(AddStudentForm form);
}
